/**
 * 包含 n 个接口函数的模块
 */
import ajax from './ajax'

/**
 * 用户登录
 * @param {string} username: 用户名
 * @param {string} password: 密码
 */
export const reqLogin = ({ username, password }) => ajax('login', { username, password }, 'POST')

/**
 * 获取左侧菜单权限列表
 */
export const reqMenuList = () => ajax('menus', {}, 'GET')

/**
 * 获取用户分页对象
 * @param {object} userpage 分页对象
 * pagenum: 显示第几页
 * pagesize: 显示每页多少条数据
 */
export const reqUserPage = ({ query, pagenum, pagesize }) => ajax('users', { query, pagenum, pagesize }, 'GET')

/**
 * 更新用户的状态
 * @param {object} param0 参数对象
 * uid: 用户id
 * state: 用户状态
 */
export const reqUpdateUserState = ({ uid, state }) => ajax(`users/${uid}/state/${state}`, {}, 'PUT')

/**
 * 添加用户
 * @param {object} user: 用户对象
 */
export const reqAddUser = (user) => ajax('users', user, 'POST')

/**
 * 根据 ID 查询用户信息
 * @param {number} id: 用户ID
 */
export const reqUserById = (id) => ajax(`users/${id}`, {}, 'GET')

/**
 * 修改用户信息
 * @param {object} user: 用户信息
 */
export const reqEditUser = ({ id, email, mobile }) => ajax(`users/${id}`, { email, mobile }, 'PUT')

/**
 * 请求添加或者修改用户信息
 * @param {*} user: 用户信息
 */
export const reqAddOrEditUser = (user) =>
  ajax('users' + (user.id ? `/${user.id}` : ''), user, (user.id ? 'PUT' : 'POST'))

/**
 * 根据id删除单个用户
 * @param {*} id: 用户id
 */
export const reqDeleteUser = (id) => ajax(`users/${id}`, {}, 'DELETE')
